IAM ポリシーで新規 IAM ユーザーがマネジメントコンソールへアクセスするのを防ぐための対処方法
困っていた内容
IAM ポリシーで IAM ユーザー作成時のプログラムによるアクセス
用の IAM ユーザの作成は許可するが、AWS マネジメントコンソールへのアクセス
用の IAM ユーザの作成を拒否するという設定は可能でしょうか。可能な場合は方法を教えてください。
IAM コンソールでは以下の設定箇所に該当します。
どう対応すればいいの?
プログラムによるアクセスを許可し、AWS マネジメントコンソールへのアクセスを拒否する IAM ポリシーは設定可能です。
IAM コンソールのチェック項目は以下の API に該当します。
プログラムによるアクセス
: CreateAccessKeyAWS マネジメントコンソールへのアクセス
: CreateLoginProfile
新規作成する IAM ユーザーの AWS マネジメントコンソールへのアクセスを判定するアクションはiam:CreateLoginProfile
です。このアクションを明示的に Deny としたポリシーを作成し、IAM ユーザー作成操作を行う IAM ユーザー/ロールへアタッチしてください。
ポリシー例
{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyIAMCreateLoginProfile", "Effect": "Deny", "Action": "iam:CreateLoginProfile", "Resource": "*" } ] }
試してみた
上記の IAM ポリシー例をアタッチした IAM ユーザーで、AWS マネジメントコンソールへのアクセスを有効化した新しい IAM ユーザーを作成してみます。
IAM ユーザーは作成できますが、ログインプロファイル(マネジメントコンソールサインイン時に入力するパスワード)の作成に失敗します。つまり、マネジメントコンソールへサインインできない IAM ユーザーが作られました。
運用上の観点
コンソールにサインイン可能な IAM ユーザーの作成は禁止と運用ルールで決めるのは簡単ですが、人は操作ミスする生き物です。
IAM ポリシーであらかじめアクションを拒否しておけば、もしものときも安全です。